package com.site.dao.backend.system;

import java.util.List;

import com.site.dto.backend.system.RoleBizBean;
import com.site.model.backend.system.ResourseInfo;
import com.site.model.backend.system.RoleInfo;
import com.site.model.backend.system.UsersInfo;
import com.site.util.base.dao.BaseDao;
import com.site.util.extremetable.QueryPage;

/**
 * 角色Dao接口
 * @author Lee 2012-12-04
 *
 */
public interface RoleDao extends BaseDao {

	public List<RoleInfo> getRoleList(QueryPage queryPage, RoleBizBean vo);

	public void save(RoleBizBean obj);

	public void update(RoleBizBean roleBizBean);
 
	/**
	 * 根据角色id查询角色用户
	 * @param roleId
	 * @return
	 */
	public List<UsersInfo> getRoleUsers(Long roleId);
	/**
	 * 根据角色名称查询角色实体
	 * @param roleName
	 * @return
	 */
	public RoleInfo getRoleByName(String roleName);
	/**
	 * 保存角色用户
	 * @param obj
	 */
	public void saveRoleUser(RoleBizBean obj);
	/**
	 * 删除角色用户
	 * @param obj
	 */
	public void deleteRoleUser(RoleBizBean obj);
	/**
	 * 启用角色
	 * @param obj
	 */
	public void enabled(Long obj);
	/**
	 * 保存角色权限
	 * @param obj
	 */
	public void saveRoleAuth(RoleBizBean obj);
	/**
	 * 删除角色权限
	 * @param obj
	 */
	public void deleteRoleAuth(RoleBizBean obj);
	/**
	 * 根据角色id查询角色资源
	 * @param roleId
	 * @return
	 */
	public List<ResourseInfo> getRoleResourse(Long roleId);

	/**
	 * 根据角色id,关联出还未分配的资源
	 * @param roleId
	 * @return
	 */
	public List<ResourseInfo> getNotRoleResourse(Long roleId);
	/**
	 * 增加角色资源
	 * @param obj
	 */
	public void saveRoleMenu(RoleBizBean obj);
	/**
	 * 删除角色资源
	 * @param obj
	 */
	public void deleteRoleMenu(RoleBizBean obj);
	/**
	 * 根据用户id,获得所有角色
	 * @param userId
	 * @param queryPage
	 * @return
	 */
	public List<RoleInfo> getUserRoles(Integer userId, QueryPage queryPage);
	/**
	 * 根据条件获得角色，HQL方式查询 
	 * @param vo
	 * @return
	 */
	public RoleInfo getModel(RoleBizBean vo);
	/**
	 * 根据角色ids，获得角色下的所有资源
	 * 格式：123，123，234
	 * @param roleIds
	 * @return
	 */
	public List<ResourseInfo> getRoleResourse(String roleIds);
	/**
	 * 禁用角色
	 * @param long1
	 */
	public void disabled(Long long1);
	
	
}
